﻿using PauloC.DAL;
using PauloC.DTO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PauloC.BLL
{
    public class CategoriaBLL
    {
        Context dbContext = new Context();
        //public ICollection<CategoriaDTO> Buscar(){

        //}
        public CategoriaDTO Buscar(int id)
        {
            CategoriaDB cat = dbContext.Categoria.First(x => x.Id == id);
            return ConverterParaDTO(cat);
        }

        public CategoriaDTO Inserir(CategoriaDTO categoria)
        {
            CategoriaDB catDB = ConverterParaDB(categoria);
            dbContext.Categoria.Add(catDB);
            dbContext.SaveChanges();
            return ConverterParaDTO(catDB);
        }
        public void Excluir(int id)
        {
            CategoriaDB cat = dbContext.Categoria.First(x => x.Id == id);
            dbContext.Categoria.Remove(cat);
            dbContext.SaveChanges();
        }
        public void Atualizar(CategoriaDTO categoria)
        {
            CategoriaDB cat = dbContext.Categoria.First(x => x.Id == categoria.Id);
            cat.Nome = categoria.Nome;
            dbContext.SaveChanges();
        }
        public List<CategoriaDTO> Listar()
        {
            List<CategoriaDTO> cats = new List<CategoriaDTO>();
            foreach (var item in dbContext.Categoria.ToList())
            {
                cats.Add(ConverterParaDTO(item));
            }
            return cats;
        }
        public CategoriaDTO ConverterParaDTO(CategoriaDB categoria)
        {
            CategoriaDTO categoriaDTO = new CategoriaDTO()
            {
                Id = categoria.Id,
                Nome = categoria.Nome
            };
            return categoriaDTO;

        }
        public CategoriaDB ConverterParaDB(CategoriaDTO categoria)
        {
            CategoriaDB categoriaDB = new CategoriaDB()
            {
                Id = categoria.Id,
                Nome = categoria.Nome
            };
            return categoriaDB;
        }
    }
}
